The "barman" domain involves a bartender who uses hands to manipulate containers (shots and shakers), ingredients, and dispensers to prepare cocktails. Containers can be empty or contain beverages, and they can be clean or used. Shakers have different fill levels and can be either shaken or unshaken. Cocktails are made by mixing exactly two ingredients in a shaker.

Actions:

1) grasp
Example: (grasp hand1 shot1)
Meaning: Hand1 picks up shot1 from the table.
• Purpose: Allows a free hand to pick up a container from the table.
• Preconditions:
  - The container is on the table.
  - The hand is empty.
• Effects:
  - The container is no longer on the table.
  - The hand now holds the container and is no longer empty.

2) leave
Example: (leave hand1 shot1)
Meaning: Hand1 places shot1 onto the table.
• Purpose: Allows a hand to put down a container onto the table.
• Preconditions:
  - The hand is holding the container.
• Effects:
  - The container is now on the table.
  - The hand becomes empty.

3) fill-shot
Example: (fill-shot shot1 gin hand1 hand2 dispenser1)
Meaning: Hand1, holding shot1, fills it with gin from dispenser1. Hand2 is free.
• Purpose: Fills a clean, empty shot with an ingredient.
• Preconditions:
  - Hand1 is holding the shot.
  - Hand2 is empty.
  - The dispenser provides the ingredient.
  - The shot is empty and clean.
• Effects:
  - The shot now contains the ingredient.
  - The shot is no longer empty or clean (it becomes used).

4) refill-shot
Example: (refill-shot shot1 gin hand1 hand2 dispenser1)
Meaning: Hand1, holding shot1, refills it with gin from dispenser1. Hand2 is free.
• Purpose: Refills a previously used shot with the same ingredient.
• Preconditions:
  - Hand1 is holding the shot.
  - Hand2 is empty.
  - The dispenser provides the ingredient.
  - The shot is empty and was previously used with this ingredient.
• Effects:
  - The shot now contains the ingredient and is no longer empty.

5) empty-shot
Example: (empty-shot hand1 shot1 gin)
Meaning: Hand1, holding shot1, empties out the gin.
• Purpose: Empties the contents of a shot.
• Preconditions:
  - Hand1 is holding the shot.
  - The shot contains a beverage.
• Effects:
  - The shot becomes empty and no longer contains the beverage.

6) clean-shot
Example: (clean-shot shot1 gin hand1 hand2)
Meaning: Hand1, holding shot1, cleans it. Hand2 is free.
• Purpose: Cleans a used, empty shot.
• Preconditions:
  - Hand1 is holding the shot.
  - Hand2 is empty.
  - The shot is empty and was previously used with a beverage.
• Effects:
  - The shot becomes clean and no longer used.

7) pour-shot-to-clean-shaker
Example: (pour-shot-to-clean-shaker shot1 gin shaker1 hand1 level0 level1)
Meaning: Hand1, holding shot1 containing gin, pours it into a clean, empty shaker1, increasing its fill level.
• Purpose: Transfers an ingredient from a shot into an empty, clean shaker.
• Preconditions:
  - Hand1 is holding the shot containing the ingredient.
  - The shaker is empty and clean.
  - The shaker has a current fill level, and the next level is available.
• Effects:
  - The shot becomes empty.
  - The shaker now contains the ingredient, is no longer empty or clean, and becomes unshaken.
  - The shaker's fill level increases.

8) pour-shot-to-used-shaker
Example: (pour-shot-to-used-shaker shot1 vermouth shaker1 hand1 level1 level2)
Meaning: Hand1, holding shot1 containing vermouth, pours it into shaker1, which already contains another ingredient and is unshaken, increasing its fill level.
• Purpose: Adds another ingredient to an unshaken shaker.
• Preconditions:
  - Hand1 is holding the shot containing the ingredient.
  - The shaker is unshaken and has room for more ingredients.
• Effects:
  - The shot becomes empty.
  - The shaker now contains the additional ingredient.
  - The shaker's fill level increases.

9) empty-shaker
Example: (empty-shaker hand1 shaker1 cocktail1 level2 level0)
Meaning: Hand1, holding shaker1 containing cocktail1, empties it completely.
• Purpose: Empties a shaken cocktail from the shaker.
• Preconditions:
  - Hand1 is holding the shaker.
  - The shaker contains a shaken cocktail.
  - The shaker has a current fill level and an empty level available.
• Effects:
  - The shaker becomes empty and unshaken.
  - The shaker no longer contains the cocktail.
  - The shaker's fill level resets to empty.

10) clean-shaker
Example: (clean-shaker hand1 hand2 shaker1)
Meaning: Hand1, holding shaker1, cleans it. Hand2 is free.
• Purpose: Cleans an empty shaker.
• Preconditions:
  - Hand1 is holding the shaker.
  - Hand2 is empty.
  - The shaker is empty.
• Effects:
  - The shaker becomes clean.

11) shake
Example: (shake martini gin vermouth shaker1 hand1 hand2)
Meaning: Hand1, holding shaker1 containing gin and vermouth, shakes it to create a martini. Hand2 is free.
• Purpose: Mixes two ingredients in a shaker to create a cocktail.
• Preconditions:
  - Hand1 is holding the shaker.
  - Hand2 is empty.
  - The shaker contains exactly two ingredients required for the cocktail.
  - The shaker is unshaken.
• Effects:
  - The shaker becomes shaken.
  - The two ingredients are combined into the cocktail, and the shaker now contains the cocktail instead of the separate ingredients.

12) pour-shaker-to-shot
Example: (pour-shaker-to-shot martini shot1 hand1 shaker1 level2 level1)
Meaning: Hand1, holding shaker1 containing martini, pours it into a clean, empty shot1, decreasing the shaker's fill level.
• Purpose: Transfers a shaken cocktail from a shaker into a shot for serving.
• Preconditions:
  - Hand1 is holding the shaker containing the shaken cocktail.
  - The shot is empty and clean.
  - The shaker has a current fill level and a lower fill level available.
• Effects:
  - The shot now contains the cocktail and is no longer empty or clean.
  - The shaker's fill level decreases.

Summary:
The "barman" domain models a bartender using hands to handle shots and shakers, fill them with ingredients, mix cocktails by shaking, and transfer beverages between containers. Containers can be clean or used, empty or filled, and shakers have different fill levels and shaken states.
